<script type="text/javascript">
$(function(){
	var pg = App.deploy.packIndex.ui, pp = pg.params || {},
		itemTpl = pg.children('.itemPl'),
		hd = pg.children('.head');

	var envCb = hd.seek('envCb').mac('combo', {
		//boxLeft:300,
		width: 70,
		boxWidth: 71,
		keyField: 'k',
		displayField: 'v',
		data: Cache.base.env('pack'),
		onSelect: function(me, sk, sd){
			
		}
	}).val('');
	
		hd.seek('start').click(function(){
// 			tab.find('.progress').width(0).data('step', 0);
// 			tab.find('pre').text('');
// 			var pta = [];
// 			tab.children('.itemPl').each(function(){
// 				var pt = $(this).seek('packType').filter(':checked').attr('value');
// 				pta.push(pt);
// 			});
// 			$.post(App.deploy.ctx + '/plan/pack/start.do', {
// 				planId: pp.id,
// 				env: env,
// 				targetIds: $.map(items, function(d){
// 					return d.targetId;
// 				}).join(','),
// 				ids: $.map(items, function(d){
// 					return d.id;
// 				}).join(','),
// 				packTypes: pta.join(','),
// 				sessionId: App.websocket.sessionId
// 			}, function(rs){
// 				var ro = mac.eval(rs);
// 				if (ro.success) {
// 					//
// 				} else {
// 					mac.alert(ro.data, ro.params);
// 				}
// 			});
		});
		hd.seek('next').click(function(){
			App.show({
				ctx: 'deploy',
				action: 'deployIndex',
				params: pp
			}, $.noop, pg.parent());
		});
		hd.seek('prev').click(function(){
			App.show({
				ctx: 'deploy',
				action: 'planDetail',
				params: pp
			}, $.noop, pg.parent());
		});
		hd.seek('runLog').click(function(){
			cs.siblings().hide();
			cs.show();
		});
		
// 		hd.children('.progressBar').data('step', items.length * 3);
// 		hd.children('.progressBar').attr('name', 'progressAll');
// 		$.each(items, function(i, d){
// 			tab.append(makeItemPl(d, env));
// 		});

	function adjust(){
		var p = pg.parent(), h = p.height(),
			m = tabs.find('.body>.main');
		pg.height(h);
	}
	$(window).resize(adjust);
	
// 	function makeItemPl(o, env){
// 		var pl = itemTpl.clone().addClass('pack' + o.type).show(),
// 			hd = pl.children('.head'), bd = pl.children('.form');
// 		pl.attr('id', o.id);
// 		pl.attr('targetId', o.targetId);
// 		hd.click(function(){
// 			bd.toggle();
// 		});
// 		hd.find('.progressBar').data('step', 3);
// 		hd.find('.progressBar').attr('name', o.targetId);
// 		hd.seek('type').html('[' + Cache.deploy.pack[o.type] + ']');
		
// 		if (o.type != 1 && o.appFrom == 1) {
// 			pl.addClass('join' + o.appFrom);
// 		}

// 		pl.data(o);
// 		pl.seek('name').html(o.name);
// 		pl.seek('ver').html(o.version);
// 		pl.seek('path').html(o.packPath);
		
// 		var lt = pl.seek('time'), pr = pl.seek('record');
// 		lt.click(function(){
// 			alert('TODO 查看最后一次打包的日志');
// 		}).html(o.lastUpdateTime);
		
// 		if (o.lastTime) {
// 			pr.click(function(){
// 				App.open({
// 					ctx: 'deploy',
// 					title: '单个打包记录',
// 					action: 'packgeRecord',
// 					model: true,
// 					params: { planId: pp.id, targetId: o.targetId, env: env }
// 				});
// 			}).show();
// 		}

// 		pl.seek('packOne').click(function(){
// 			loading = mac.wait('正在拉取源码，请稍候');
// 			var currentItem = $(this).parent().parent().parent(),
// 			targetId = currentItem.attr("targetId"),
// 			cpi = currentItem.find('.progressBar[name='+targetId+']>.progress'),
// 			pa = $('.progressBar[name=progressAll]'),
// 			pai = pa.children('.progress'),
// 			os = (pai.data('step') || 0) - (cpi.data('step') || 0);
// 			// 还原总进度条
// 			pai.data('step', os);
// 			pai.width(pai.data('step') * 100 / pa.data('step') + '%');
// 			// 清空当前打包进度条
// 			cpi.width(0).data('step', 0);
// 			tabs.selected.find('pre').text('');
// // 			pakingNum=1;
// 			var tdate = new Date();
// 			var t=tdate.toLocaleString();
// 			var rd = $(this).parent().parent().seek('packType').filter(':checked');
// 			$.post(App.deploy.ctx + '/plan/pack/start.do' ,{
// 				id:currentItem.attr("id"),
// 				planId: pp.id,
// 				targetId: targetId,
// 				packType: rd.val(),
// 				env: env,
// 				sessionId: App.websocket.sessionId
// 			}, function(rs){
// 				// pr.show();
// 				var ro = mac.eval(rs);
// 				if (loading) {
// 					loading.close();
// 					loading = null;
// 				}
// 				if (ro.success) {
// 					lt.html(t);
// 				} else {
// 					lt.html('打包失败');
// 				}
// 			});
// 		});
// 		return pl;
// 	}
	
	function init(items){
		var cs = pg.children('.console');
		
		cs.children('div').click(function(){
			cs.hide().siblings().show();
		});
// 		hd.seek('records').click(function(){
// 			App.open({
// 				title: '打包记录',
// 				ctx: 'deploy',
// 				action: 'packgeRecord',
// 				model: true,
// 				params: { planId: pp.id, env: envCb.val() }
// 			});
// 		});
	}
	
	$.post(App.deploy.ctx + '/plan/item/list.do', {
		planId: pp.id,
		type: 0, // 只查询APP
		pageNo: 1,
		pageSize: 999
	}, function(rs){
		var ro = mac.eval(rs), dd = ro.data;
		if (ro.success) {
			try {
				init(dd.list);
			} catch (e) {
				console.error(e);
			}
		} else {
			mac.alert(dd, ro.params);
		}
	});

	App.websocket.open({
// 		onopen : {
// 			'fn1' : function(e) {
// 			}
// 		},
// 		onclose : {
// 			'fn1' : function(e) {
// 			}
// 		},
// 		onerror : {
// 			'e1' : function(e) {
// 				alert('websocket出现异常');
// 			}
// 		},
		'base': {
			'open': function(o, e, ws){
				// pg.sessionId = o.data;
				App.websocket.sessionId = o.data;
			}
		},
		pack: {
			'compile': function(o, e, ws) {
				if (loading) {
					loading.close();
					loading = null;
				}
// 				for(var i=0; i<targetArr.length; i++){
// 					if(($(targetArr[i]).attr('targetid')==JSON.parse(event.data).targetId)&&($(targetArr[i]).attr('env')==JSON.parse(event.data).env)){
// 						var steps = ((JSON.parse(event.data).presentCompileStep + 1) / JSON.parse(event.data).totalSteps)*100;
// 						$(targetArr[i]).seek('proBar').attr("style","width:"+steps+"%");
// 						$(targetArr[i]).seek('proBar').attr("percent",steps);
// 						$(targetArr[i]).seek('log').show();
// 						$(targetArr[i]).seek('log').attr("href",App.cache.logUrl.head+JSON.parse(event.data).jobId+App.cache.logUrl.foot);
// 						setPro($(targetArr[i]).parent().parent());
// 					}
// 				}
				var n = '[name=' + o.data + ']',
					b = $('.progressBar' + n), p = b.children('.progress'),
					pa =$('.progressBar[name=progressAll]'), pai = pa.children('.progress');
					t = b.data('step'), s = p.data('step') || 0;
				// 当前包打包进度
				p.data('step', ++s);
				p.width(Math.round(s * 100 / t) + '%');
				// 全部打包进度
				t = pa.data('step');
				s = pai.data('step') || 0;
				pai.data('step', ++s);
				pai.width(Math.round(s * 100 / t) + '%');
			},
			'export': function(o){
				alert(JSON.stringify(o));
// 				packingNow++;
// 				packingNum--;
// 				if(packingNow==JSON.parse(event.data).jobCount){
// 					packingNow=0;
// 				}
// 				if(packingNum==0){
// 				}
			},
			'log': function(o, e, ws) {
				if (loading) {
					loading.close();
					loading = null;
				}
				var d = o.data;
				var content = d.ip + ": " + d.log || '';
				tabs.getTabBody(d.env).find('.envTab>.console>pre').append(content);
				if (d.log && d.log.indexOf('end mvn_cmp.sh|-\n') >= 0) {
					pg.find('.progress').width('100%');
				}
			}
		}
	});
});
</script>
<div class="console hidden">
	<div><span class="a">点击返回<span></div>
	<pre></pre>
</div>
<div class="head">
	<button name="prev">上一步</button>
	<button name="next">下一步</button>
	<div class="combo fr" name="envCb">
	</div>
	<button name="start">开始</button>
	<button name="start">开始</button>
	
	<div class="progressBar fr">
		<div class="progress"></div>
	</div>
	<button name="records">打包记录</button>
	<span name="runLog" class="a fr">日志跟踪</span>
</div>
<div class="itemPl hidden">
	<div class="head">
		<span name="type"></span>
		<span name="name"></span>
		<span name="ver"></span>
		<div class="progressBar fr">
			<div class="progress"></div>
		</div>
	</div>
	<div class="form">
		<div class="item">
			<span class="label">打包路径：</span>
			<span class="value" name="path"></span>
			<div class="clear"></div>
		</div>
		<div class="item">
			<span class="label">上次打包时间：</span>
			<span class="a value" name="time"></span>
			<span class="a value hidden" name="record">单个打包记录</span>
			<div class="clear"></div>
		</div>
		<div class="item">
			<span class="label">打包类型：</span>
			<form class="inline">
				<input type="radio" name="packType" value="0" checked="checked" />完整包
				<input type="radio" name="packType" value="1" />程序包
				<input type="radio" name="packType" value="2" />配置包
			</form>
			<div class="clear"></div>
		</div>
		<div class="item">
			<span class="label">相关文件：</span>
			<div name="itemCode" class="fl">
				&nbsp;<br>
				&nbsp;<br>
				&nbsp;<br>
				&nbsp;<br>
			</div>
			<button name="packOne" class="fr">单个打包</button>
			<div class="clear"></div>
		</div>
	</div>
	<div class="clear"></div>
</div>